CXX:=g++
CXXFLAG:=-std=c++11

lib=-lpthread
dirs=$(shell find . -type d)
include=$(dirs:%=-I%)
vpath % $(dirs)

srcscc=$(foreach dir, $(dirs), $(wildcard $(dir)/*.cc))
srcscpp=$(foreach dir, $(dirs), $(wildcard $(dir)/*.cpp))

objs=$(srcscc:%.cc=%.o)
objs+=$(srcscpp:%.cpp=%.o)

main : $(objs)
	g++ $^ -o $@ $(lib) $(CXXFLAG) $(include)

%.o:%.cc
	g++ -c $< -o $@ $(lib) $(CXXFLAG) $(include)
	
%.o:%.cpp
	g++ -c $< -o $@ $(lib) $(CXXFLAG) $(include)

.PHONY : clean
clean :
	rm main $(objs)
